module A {
    export interface Point {
        x: number;
        y: number;
    }

    export module inA {
        export interface Point3D extends Point {
            z: number;
        }
    }
}

// no code gen expected
module B {
    import a = A;
}

// no code gen expected
module C {
    import a = A;
    import b = a.inA;
    var m: typeof a;
    var p: b.Point3D;
    var p = {x:0, y:0, z: 0 };
}

// no code gen expected
module D {
    import a = A;

    var p : a.Point;
}

// no code gen expected
module E {
    import a = A.inA;
    export function xDist(x: a.Point3D) {
        return 0 - x.x;
    }
}